package com.zmzncs.lmtc.module.park.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zmzncs.lmtc.module.park.pojo.parkinfo.ParkInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zmzncs.lmtc.module.park.pojo.parkinfo.ParkInfoDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 任建波
 * @since 2020-10-09
 */
@Repository
public interface ParkInfoDao extends BaseMapper<ParkInfo> {

    /**根据泊链停车场编号获取停车场*/
    ParkInfoDTO getParkByBolianComId(String bolianComId);
    /**根据泊链停车场信息获取停车场*/
    ParkInfoDTO getParkByBolianParkUnionIdBolianParkId(@Param("bolianParkUnionId") String bolianParkUnionId, @Param("bolianParkId") String bolianParkId);

    /**根据咪网停车场信息获取停车场*/
    ParkInfoDTO getMWParkByParkId(@Param("parkId") String parkId);

    /**获取附近停车场*/
    IPage<ParkInfoDTO> getNearbyParkList(Page page, @Param("longitude") String longitude, @Param("latitude") String latitude);
    /**查询附近有月租规则的停车场*/
    IPage<ParkInfoDTO> getNearbyParkHasMonthRuleList(Page page, @Param("longitude") String longitude, @Param("latitude") String latitude);
    /**获取停车场列表*/
    List<ParkInfoDTO> getParkList();
    /**根据参数获取停车场列表*/
    IPage<ParkInfoDTO> getParkByParamList(Page page, String keyword);

    /**添加停车场*/
    int insertPark(@Param("park") ParkInfoDTO park);
    /**修改停车场*/
    int updatePark(@Param("park") ParkInfoDTO park);

    /** 模糊查询停车场（名称、地址）*/
    List<ParkInfoDTO> getParkByName(String keyword);

    /**根据泊链parkid查询*/
    ParkInfoDTO getByBolianParkId(String bolianParkId);

    /**ID查询停车场信息*/
    ParkInfoDTO getParkInfoById(Long parkId);


    /**获取预约停车场列表*/
    List<ParkInfoDTO> getReserveParkList(String parkName);

    /**获取最近预约停车场列表*/
    ParkInfoDTO getNearbyReserveParkList(String longitude, String latitude);

}
